home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 1 / PC Actual CD 01.iso / f1 / mdisk25.arj / MCOPY.ASC < prev    next >
Encoding:
Text File  |  1994-09-26  |  4.4 KB  |  58 lines

  1. MCOPY - NΘCLEO DE LA COPIA DE DISQUETES.
  2.      A través de MCopy se realiza el copiado de disquetes propiamente dicho, MCopy es una
  3. unidad que entra en funcionamiento por medio del procedimiento Copy_Disk llamado por Mprog
  4. en HandleEvent.
  5.      En MCopy se crea un nuevo objeto de diálogo dependiente de Tdialog que se encargará
  6. de copiar los disquetes. A Copy Disk se le pasan tres parámetros obtenidos previamente en
  7. MProg: número de la unidad de disquete a procesar, número de copias que se van a hacer y
  8. si se van a verificar las copias o no.
  9.      Para usar un diálogo como sistema para copiar disquetes he tenido que modificar el
  10. método Execute para adaptarlo a mis necesidades. El método Execute consta de un bucle
  11. donde se procesan los diversos sucesos, en mi método Execute hay dos bucles que coinciden
  12. con la lectura y con la escritura del disquete y de los que se sale por medio de Handlevent que
  13. procesa el suceso si hemos pulsado ESC o hemos activado algún comando de cerrar la ventana
  14. mediante el ratón o ALT-F3, además se encarga de analizar el disquete introducido desechando
  15. los disquetes erróneos, actualiza el sistema de ayuda para poder ser utilizado con la gestión de
  16. errores ,contabilizar el progreso de la copia y el tiempo de la misma.
  17.      Para saber donde se va a colocar la imagen del disquete existe el tipo Tplace y la variable
  18. Where y su funcionamiento es el siguiente: primero se comprueba si hay memoria extendida,
  19. si la hay se utiliza esta y a la variable Where se le asigna el valor In_XMS, si no hay suficiente
  20. memoria extendida se prueba con la memoria expandida y si hay suficiente se asigna a Where
  21. el valor In_Ems, por último si no hay suficiente memoria extendida ni expandida se utiliza el
  22. disco duro y la imagen se coloca en el mismo directorio donde se ejecuta el programa en el
  23. fichero DISK.DAT que al finalizar el programa se borra.
  24.      Utiliza el programa mas memoria de la que se necesita como un sistema de seguridad,
  25. para eso está la variable MEMPOOL que aloja 16 Kb más de memoria.
  26.      La copia de disquetes se puede interrumpir en cualquier momento por medio de la tecla
  27. de ESC o pulsando con el ratón en el icono de cerrar del diálogo situado en la esquina superior
  28. izquierda del mismo.
  29.      Los módulos que utiliza el programa son los siguientes:
  30.      Dos,crt,Emimsbox,Objects,Drivers,Views,Dialogs,Emiapp,Mdhelp - Para la gestión de la
  31.      presentación y de los diálogos y objetos visuales y las definiciones de ayuda y sucesos
  32.      del programa.
  33.      Mdrive - Módulo que da soporte a las funciones BIOS de manejo de disquetes.
  34.      Timer - Módulo para contar el tiempo.
  35.      Mxmsst - Módulo para la creación de un flujo o Tstream que utiliza memoria extendida.
  36.      Ahora voy a describir los procedimientos más importantes de Copydlg, puesto que los
  37. procedimientos derivados estándar han sido explicados con anterioridad no los trataré ahora:
  38.      Procedure Draw - Dibuja el diálogo que es el área de trabajo del programa.
  39.      Procedure Read_Floppy - Lee el disquete fuente.
  40.      Procedure Write_Floppy - Escribe mediante un bucle los disquetes de destino.
  41.      Procedure Get_Real_Time - Obtiene el tiempo real de copia.
  42.      Procedure Get_Estimated_Time(Track:Byte) - Obtiene el tiempo estimado de copia.
  43.      Procedure Updating - Actualiza algunos datos del diálogo.
  44.      Function Execute:Word - Efectúa el copiado de los disquetes.
  45.      Function Interrupcion:Boolean -Comprueba si el usuario quiere de verdad salir del
  46.      programa o ha pulsado ESC equivocadamente.
  47.      Además de estos procedimientos tenemos las siguientes variables:
  48.      La ya mencionada Where, además de Mempool reserva de memoria de seguridad de
  49.      16Kb por si acaso, estas son las mas importantes, hay otras de menor importancia.
  50.      El programa detecta los errores de disquete e interrumpe la copia si es necesario.
  51.      El programa ha sido realizado de modo que sea en Execute donde se realice realmente
  52.      la copia del disquete, en otros casos se emplea un bucle para la gestión de los sucesos,
  53.      pero como aquí execute tiene dos partes, la parte de lectura del disquete y la parte de
  54.      escritura, por eso hay dos bucles que captan las teclas pulsadas por el usuario. Para salir
  55.      del programa o bien se pulsa ESC o con el ratón encima del icono de cerrar ventana
  56.      situado en la parte superior izquierda de esta.
  57.      Mediante de la utilización de un conmutador /V el programa verifica que la copia se ha
  58. realizado correctamente.